package cn.tedu.api;
/***本类用于包装类的入门案例*/
public class TextNumber {
    static Integer i0;
    public static void main(String[] args) {
        System.out.println(i0);//包装类型也是引用类型,默认值是null
        //1.1 Integer创建方式1:Integer(int)
        Integer i1 = new Integer(5);
        Integer i11 = new Integer(5);

        //1.2 Integer创建方式2:valueOf(int)
        /*Integer有一种高效的效果,只要满足3个条件:
         * 1)是Integer这个类
         * 2)使用的创建方式是valueOf()
         * 3)包装的基本类型的值在-128~127这个范围内
         * 满足以上3个条件,相同的数据只会存一次,后续再存都是使用之前存过的数据*/
        Integer i2 = Integer.valueOf(127);
        Integer i22 = Integer.valueOf(127);

        Integer i3 = Integer.valueOf(300);
        Integer i33 = Integer.valueOf(300);

        System.out.println(i1 == i11);//false
        System.out.println(i2 == i22);//true
        System.out.println(i1 == i2);//false
        System.out.println(i3 == i33);//false

        //2.1 Double的创建方式1: Double(double)
        /*只有Integer才有高效的效果,Double是没有的*/
        Double d1 = new Double(3.14);
        //2.2 Double的创建方式2 : valueOf(double)
        Double d2 = Double.valueOf(3.14);
        Double d22 = Double.valueOf(3.14);
        System.out.println(d1 == d2);//false
        System.out.println(d2 == d22);//false

        /*调用方法的对象是什么类型的,就可以使用这个类的所有资源
        i1是Integer类型的对象,所以可以使用parseInt()将String类型的数据转为int类型
        d1是Double类型的对象,所以可以使用parseDouble()将String类型的数据转为double类型
        * */
        System.out.println(i1.parseInt("800")+2);//802,int+int->int
        System.out.println(d1.parseDouble("2.2")+1.1);//3.3,double+double->double
    }
}
